#pragma GCC optimize(2)
#include <iostream>
#include <queue>
#include <map>
#include <unordered_map>
#include <vector>
#include <algorithm>
#include <cmath>
#include <string>
#include <cstring>
#include <set>
#include <unordered_set>
#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
const int N=2e5+10;
int a[N];
int st[N];
int b[N];
int main()
{
	int t=1;
	while(t--)
	{
		int n;
		cin>>n;
		for(int i=1;i<=n;i++) cin>>b[i];
		
		if(b[1]==2) b[1]=1;
		if(b[n]==2) b[n]=1;
		int cnt=0; 
		int idx=0;
		for(int i=1;i<=n;i++)
		{
			if(b[i]!=b[i-1] || b[i]==0) a[++idx]=b[i]; 
		}
		for(int i=1;i<=idx;i++)
		{
//			cout<<a[i]<<' ';
			if(a[i]==2)
			{
				if(st[i]==0)
				{
					cnt++;
				}
				st[i]=1;
				st[i+1]=1;
				st[i-1]=1;
			}
		}
//		cout<<idx<<' ';
		for(int i=1;i<=idx;i++)
		{
			if(a[i]==1)
			{
				if(st[i]==0) cnt++;
				if(i-1!=0 && st[i-1]==0) st[i-1]=1;
				else if(st[i+1]==0) st[i+1]=1;
				st[i]=1;
			}
		}
		
		for(int i=1;i<=idx;i++)
		{
			if(st[i]==0) cnt++;
//			cout<<st[i]<<' ';
		}
		cout<<cnt;
	}

	return 0;
}

